Eugene Tyson
Community Expert
Eugene Tyson
Community Expert
Activity
5 hours ago
1 Upvote
Take out the full stop in your code - not required anyway
\b(t)(?=bsp\b) is sufficient
... View more
6 hours ago
2 Upvotes
Create a character style and call it's 'Cap first letter' or something similar
so then you go to the paragraph style and insert the GREP code and apply the style
Style is Cap
code is
\b(w)(?=ord\b)
for whatever word you want - you can replace it like tbps - I think you asked in another thread
so the code would be
\b(t)(?=bps\b)
or if it's concrete
\b(c)(?=oncrete\b)
any word you want
if you change the word - say in my example to 'words' or 'wording' then the w reduces back to lowercase, as it no longer matches the string.
... View more
10 hours ago
You haven't sent any images.
If you want to drop a file I can fix it up for you.
Attach here or you can send me a link by DM.
Happy to help you set it up.
... View more
10 hours ago
The left indent should be say 20mm
Then then first line indent should be -20mm
Did you try the example file?
... View more
13 hours ago
Sample file attached with both methods as styles
For tabs - adjust the Tab section in the paragraph style - note you need the Indent to here character.
For the indent style - you need to adjust the left indent and the first line indent in the paragraph style.
... View more
14 hours ago
I gave you 2 ways.
The 2nd way achieves what you want - don't use a hard return to get to the next line - if you need to go next line use a soft return (shift + enter/return key)
Then use the indent to here character.
But the best way is a left indent + first line indednt - as shown in option 1
... View more
14 hours ago
Use a left indent for the 2 to move over - don't need a tab.
Then put a tab after 2 between red peppers
Then use a First Line Indent to push over the 2nd line
If you don't want to or can't use indents and want to use multiple tabs and just flow the text under some other
like this
You need to insert the Indent to Here charcter
It's the dagger like symbol as shown here - and text flows to this point
... View more
15 hours ago
Nothing wrong with sharing files with clients or press - I usually send them if they request them, no charge. I don't see it as giving it away - I see it as a service, if they paid for the work, they own the files, no issues.
Anyway - the issue around the fonts - package what you can without the fonts- send it on and let them figure it out the rest.
Offer the PDF too - send that as well - then you're covered.
They can try get the fonts to work and match your PDF.
Or just use your PDF.
If they need to license the font let them - it's up to them anyway. If they have Adobe fonts, then they have the license to them, they don't need to install them.
My advice - get on with sending what you can (without the fonts) and let them figure out the rest.
But be a stickler that you only usually send PDFs and sending files is unusual but doable, but they need to license the fonts to use the files.
... View more
15 hours ago
I'd say it's just overset text - something has nudged it out of the text frame - if you can share the file it will help track down the issue so you can avoid it in the future. It could be numerous issues with it.
... View more
15 hours ago
Saving from the cloud
Choose save on your computer
Can you pick INDT or IDML from the file type options? If you can - try these options and see if it saves a working copy locally to your hard drive.
... View more
15 hours ago
Are you sure it's on and not just the top options?
Dynamic spelling can be hidden when in a certain view - like always viewing with Overprint on (go to View> and ensure Overprint is not ticked
With overprint preview it doesn't show
The other view settings are on the Tool Panel - if you are in the view of the bottom right selected it won't show either
You have to be in Normal view
Autocorrect only works when typing - it won't affect words that are already there, but dynamic spelling should flag them.
----
Outside of this
Try resetting your preferences: InDesign 19.3 and newer go to Preferences > General > and click on "Reset Preferences on Quit" and then quit and restart. Or Windows: Start InDesign, and then press Shift+Ctrl+Alt. Click Yes when asked if you want to delete preference files. macOS: While pressing Shift+Option+Command+Control, start InDesign. Click Yes when asked if you want to delete preference files. A dialog will appear asking to delete the InDesign Preferences, select 'Yes' on this dialog. More in-depth cleanse of preferences https://helpx.adobe.com/in/indesign/kb/indesign-preferences-support-file-locations.html
---
Reinstalling rarely fixes everything - you can do a complete reinstall using the Creative Cloud Cleaner Tool https://helpx.adobe.com/creative-cloud/kb/cc-cleaner-tool-installation-problems.html
---
... View more
‎May 17, 2025
01:01 AM
1 Upvote
Sorry I misunderstood - there are no PNGs attached that I can see.
Would you mind sharing them again - and also can you please supply a sample document.
Common fix
File>Export and choose IDML
Open that - then save as a new InDesign file
---
Does it happen just on this document or all docs? If just this one - see above
If all
Try resetting your preferences: InDesign 19.3 and newer go to Preferences > General > and click on "Reset Preferences on Quit" and then quit and restart. Or Windows: Start InDesign, and then press Shift+Ctrl+Alt. Click Yes when asked if you want to delete preference files. macOS: While pressing Shift+Option+Command+Control, start InDesign. Click Yes when asked if you want to delete preference files. A dialog will appear asking to delete the InDesign Preferences, select 'Yes' on this dialog. More in-depth cleanse of preferences https://helpx.adobe.com/in/indesign/kb/indesign-preferences-support-file-locations.html
... View more
‎May 17, 2025
12:35 AM
One thing is the Find/Replace menu - and character menu - yes they will show the fonts available in the document and in your system.
But the PNG that's a different issue, PNGs are flat raster images, they don't contain text or fonts, it's made with pixels.
Are you saying the font you want to change is in the PNG file?
Even when you place an image in INDesign file with File>Place and it has Live Text in the file (a pdf, eps, ai or other file) - the font can't be replaced by InDesign font menu.
It can only be replaced by going to the source of the image (the file itself) opening that and editing it.
If it's a PNG you likely can't even change the text or the font - you'd have to erase it completely and retype it.
And when you do - leave it blank - place it InDesign and insert your text directly in InDesign - then and only then can you edit the text in InDesign and manipulate the font.
Only text in InDesign that is editable in InDesign can be manipulated by the Find/Replace fonts.
... View more
‎May 17, 2025
12:30 AM
It's nice - had to translate page to English - so what's the goal here? Are you batch processing them? Surely for an InDesign project an Excel sheet with calculation would be better - and then you could data merge all the text (possibly)
I didn't look at difference in age between two people or how long to next birthday.
For age of a person it can definitely be scripted in InDesign (even I can do it)
if (app.selection.length === 1) {
var selected = app.selection[0];
var textFrame = null;
if (selected.constructor.name === "TextFrame") {
textFrame = selected;
} else if (selected.hasOwnProperty("parentTextFrames") && selected.parentTextFrames.length > 0) {
textFrame = selected.parentTextFrames[0];
}
if (textFrame !== null) {
var content = textFrame.contents;
var lines = content.split(/\r|\n/);
var results = [];
for (var i = 0; i < lines.length; i++) {
var line = manualTrim(lines[i]);
// Regex to capture optional name + mandatory date at end
var regex = /^(.*?)(\d{1,2}\/\d{1,2}\/\d{4})$/;
var match = line.match(regex);
if (match) {
var namePart = manualTrim(match[1]);
var dateStr = match[2];
var dateParts = dateStr.split("/");
var day = parseInt(dateParts[0], 10);
var month = parseInt(dateParts[1], 10) - 1;
var year = parseInt(dateParts[2], 10);
var dob = new Date(year, month, day);
if (dob.getFullYear() === year && dob.getMonth() === month && dob.getDate() === day) {
var age = calculateAge(dob, new Date());
var ageString = age.years + " years, " + age.months + " months, " + age.days + " days";
if (namePart.length > 0) {
results.push(namePart + " " + ageString);
} else {
results.push(ageString);
}
}
}
}
if (results.length > 0) {
var resultString = results.join("\r");
var newFrame = textFrame.parentPage.textFrames.add();
var selBounds = textFrame.geometricBounds;
var frameHeight = selBounds[2] - selBounds[0];
newFrame.geometricBounds = [
selBounds[2] + 5,
selBounds[1],
selBounds[2] + frameHeight + 5,
selBounds[3]
];
newFrame.contents = resultString;
alert("Ages calculated:\r" + resultString);
} else {
alert("No valid dates found in the selection.");
}
} else {
alert("Please select a text frame or text inside a text frame.");
}
} else {
alert("Please select one text frame or text inside it.");
}
function manualTrim(str) {
return str.replace(/^\s+/, "").replace(/\s+$/, "");
}
function calculateAge(dob, today) {
var years = today.getFullYear() - dob.getFullYear();
var months = today.getMonth() - dob.getMonth();
var days = today.getDate() - dob.getDate();
if (days < 0) {
months--;
var prevMonth = new Date(today.getFullYear(), today.getMonth(), 0);
days += prevMonth.getDate();
}
if (months < 0) {
years--;
months += 12;
}
return { years: years, months: months, days: days };
}
... View more
‎May 16, 2025
07:31 AM
I'm not having much luck either
On the surface it should be working but I'm missing something - I build in a few checks to see what's going on, and can get a sample return, but I am lost
@m1b @Charu Rajput any ideas what's going wrong?
Fairly new to scripting - hope it's something simple.
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, '');
};
}
var doc = app.activeDocument;
var counter = 1;
for (var i = 0; i < doc.pages.length; i++) {
var page = doc.pages[i];
var tf = page.textFrames.add({
geometricBounds: [20, 20, 100, 100]
});
var stories = doc.stories;
for (var s = 0; s < stories.length; s++) {
var story = stories[s];
var frames = story.textContainers;
var isOnPage = false;
for (var t = 0; t < frames.length; t++) {
if (frames[t].parentPage && frames[t].parentPage === page) {
isOnPage = true;
break;
}
}
if (!isOnPage) continue;
var fns = story.footnotes;
for (var f = fns.length - 1; f >= 0; f--) {
var paras = fns[f].paragraphs;
for (var p = 0; p < paras.length; p++) {
var content = String(paras[p].contents)
.replace(/[\u200E\u200F\u202A-\u202E\uFEFF]/g, "")
.trim();
alert("Checking paragraph: " + content);
var pattern = /^[:\u0600-\u06FF]/;
if (pattern.test(content)) {
alert("Matched paragraph: " + content);
var paraText = paras[p].contents;
paras[p].remove();
var marker = fns[f].storyOffset;
marker.contents = counter.toString() + " ";
tf.contents += counter + "- " + paraText + "\r";
counter++;
fns[f].remove();
break;
}
}
}
}
}
alert("Finished processing footnotes.");
... View more
‎May 16, 2025
06:31 AM
Ah right sorry about that
var content = String(paras[p].contents).replace(/[\u200E\u200F\u202A-\u202E\uFEFF]/g, "").trim();
If you have a sample file I can troubleshoot the script to see if I can get it working for you
... View more
‎May 16, 2025
05:55 AM
Try replace this
if (paras[p].contents.indexOf(":ØØ§Ø´ÙŠØ©") === 0) {
With:
var content = paras[p].contents.replace(/[\u200E\u200F\u202A-\u202E\uFEFF]/g, "").trim(); // Remove hidden LTR/RTL markers
if (content.indexOf(":ØØ§Ø´ÙŠØ©") === 0) {
Should remove invisible characters (Unicode directionality marks), and trims whitespace that could break your match.
Try to iterate backwards
replace
for (var f = 0; f < fns.length; f++) {
with
for (var f = fns.length - 1; f >= 0; f--) {
... View more
‎May 16, 2025
12:57 AM
If you export to PDF Interactive then you won't have to do any conversion, spots are automatically changed - in my tests anyway.
File>Export>PDF Interactive from the drop down.
It's a menu proof setting by your name in the setings - so this would make it all RGB.
Does that help?
A script can do it for your proofs so you don't have to remember toggle to interactive pdf each time.
// InDesign JavaScript (ExtendScript)
if (app.documents.length !== 0) {
var doc = app.activeDocument;
// Prepare default file name: DocumentName_proof.pdf
var baseName = doc.name.replace(/\.indd$/i, "");
var defaultName = baseName + "_proof.pdf";
// Prompt for save location with default name
var pdfFile = File.saveDialog("Save Interactive PDF", defaultName);
if (pdfFile !== null) {
// Clean up document metadata to avoid "Proof" titles
doc.metadataPreferences.documentTitle = baseName;
doc.metadataPreferences.author = "";
doc.metadataPreferences.description = "";
// Set export options
var pdfExportPreset = app.interactivePDFExportPreferences;
pdfExportPreset.pageRange = PageRange.ALL_PAGES;
pdfExportPreset.exportReaderSpreads = false;
// Ensure file has .pdf extension
if (!/\.pdf$/i.test(pdfFile.name)) {
pdfFile = new File(pdfFile.fsName + ".pdf");
}
// Export to interactive PDF
doc.exportFile(ExportFormat.INTERACTIVE_PDF, pdfFile, false);
alert("Exported to Interactive PDF:\n" + pdfFile.fsName);
}
} else {
alert("No document open. Please open an InDesign document first.");
}
... View more
‎May 15, 2025
10:38 AM
1 Upvote
Hi Anna
I'm not Adobe support but this is a user to user forum
Can you please post specific error messages, crash logs, steps before the crash?
What's your OS and system specs?
Common fixes
Export damaged INDD file as IDML (if still possible) and open the IDML and save as new InDesign file and see if the issue persists
Corrupt preferences/cache Reset InDesign preferences (can be done in InDesign Preferences now too) Hold Shift+Ctrl+Alt (Windows) or Shift+Cmd+Opt+Ctrl (Mac) immediately after launching InDesign.
Problematic fonts or plugins
Start in Safe Mode on your PC/Mac and see if the issue persists
or
Create a fresh user profile on the OS and see if InDesign behaves differently.
Damaged InDesign installation or workspace files
Reinstalling rarely fixes everything - you can do a complete reinstall using the Creative Cloud Cleaner Tool https://helpx.adobe.com/creative-cloud/kb/cc-cleaner-tool-installation-problems.html
External drive/network sync issues (like OneDrive, Dropbox conflicts)
Test working on local drive only avoid working from synced folders or servers.
Try older InDesign versions if still installed (sometimes the latest version is the issue).
Rollback to a previous InDeisgn version https://helpx.adobe.com/download-install/using/install-previous-version.html#:~:text=Open%20the%20Creative%20Cloud%20desktop,down%20list%2C%20select%20Other%20Versions.
... View more
‎May 15, 2025
04:07 AM
2 Upvotes
Definitely gets stuck for me
Sonoma 14.4.1 (23E224)
InDesign 20.3
Updating to 20.3.1 now
And same issue Interestingly - in the properties panel it works as expected. It's when I set the workspace to advanced Then the Align Tools are on the. top panel Then it gets stuck
... View more
‎May 15, 2025
03:26 AM
1 Upvote
I can confirm the same behaviour - the icon sticks and you have to hit Esc or click somewhere.
Don't see any option to modify the behaviour
https://indesign.uservoice.com/forums/601180-adobe-indesign-bugs
... View more
‎May 15, 2025
02:13 AM
1 Upvote
AFAIK the option is not there anymore - so unforunately this is the only way I can think of to do it. I use slug data all the time.
I understand your preference though.
... View more
‎May 15, 2025
12:27 AM
I think older versions of InDesign allowed customisation of the .mrk (mark) files that controlled what got spat out when you ticked Page Information in the Marks and Bleeds PDF export.
As far as I know, Adobe has moved away from editable mark files. Now, the Page Information data is hard-coded into InDesign, and users have zero official control over the content or formatting. It will always output the document name, page number, date, and time, in a rigid style.
What you can do Create your own custom page info by adding the Slug Info in the Document setup and then include that in the PDF export
You can create a parent page item in the slug area.
Use variables like File Name and Modification Date (customise as you see fit)
Combine them with custom text like Confidential or client names.
You might be able to even script it if you want a dynamic solution that updates automatically on save or export etc.
InDesign Variables Go to Type > Text Variables > Insert Variable Use File Name, Last Modified Date or create your own custom variables.
Acrobat stamp If you're in a pinch, you can also post-process the PDF in Acrobat using a custom stamp, but that's more of a hack.
... View more
‎May 15, 2025
12:21 AM
Can't they put it into a 2021 folder or something? Or am I imagining this trick?
Probably the other way around...
... View more
‎May 15, 2025
12:13 AM
Thanks for the tips - always good to know other ways that are cleaner !
... View more
‎May 14, 2025
11:05 PM
Actually the comma idea is not good - most languages don't have page numbers with a comma ... but still it was fun to try it. You never know...
... View more
‎May 14, 2025
11:01 PM
Oh yeh - and if they need to do it again - they need to include numbers after 848.
As the GREP doesn't cover 849 (or something like that) 😄
Yours targets numbers after the change - which is easy to change - and if you need to increase by 1 2 3 or 10 it's easy to implement. And on selected text - supersmart.
Woner what happens after 1000 - is it 1,000 or 1000 ...
So - when we go from 998 to 1000 - this now changes the numbers to 1,000 And all numbers with 4 or more digits should get the comma inserted correctly But if they don't want comms then need to take that out 😄
function addCommas(numStr) {
return numStr.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
function main() {
var doc = app.activeDocument;
var text = doc.selection[0];
if (!text || typeof text.findGrep !== 'function') {
alert('Please select some text and try again.');
return;
}
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
// Find numbers with or without commas
app.findGrepPreferences.findWhat = '\\d{1,3}(,\\d{3})+|\\d+';
var found = text.findGrep();
for (var i = found.length - 1; i >= 0; i--) {
var item = found[i];
var originalText = item.contents;
// Remove commas before conversion
var numericValue = parseInt(originalText.replace(/,/g, ''), 10);
if (numericValue >= 336) {
var newValue = numericValue + 2;
var newText = newValue.toString();
if (newText.length > 3) {
newText = addCommas(newText);
}
item.contents = newText;
}
}
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
}
app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, 'Increase Numbers +2 with Commas');
... View more
‎May 14, 2025
10:13 PM
1 Upvote
Far smarter than what i came up with
(function () {
if (app.documents.length === 0) {
alert("No document open.");
return;
}
var doc = app.activeDocument;
var grepPattern = "\\b(33[7-9]|3[4-9]\\d|[4-7]\\d{2}|8[0-4][0-8])\\b";
var found = doc.findGrep();
// Clear previous grep preferences
app.findGrepPreferences = NothingEnum.NOTHING;
app.changeGrepPreferences = NothingEnum.NOTHING;
// Set new pattern
app.findGrepPreferences.findWhat = grepPattern;
found = doc.findGrep();
if (found.length === 0) {
alert("No numbers between 337 and 848 found.");
return;
}
app.doScript(function () {
for (var i = 0; i < found.length; i++) {
var match = found[i].contents;
var newNum = parseInt(match, 10) + 2;
found[i].contents = newNum.toString();
}
}, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Index +2");
// Clear preferences
app.findGrepPreferences = NothingEnum.NOTHING;
app.changeGrepPreferences = NothingEnum.NOTHING;
alert("Done. Increased " + found.length + " numbers.");
})();
... View more
‎May 14, 2025
10:01 PM
Nothing. It should be straight forward.
... View more